package com.qf.service.impl;

import com.qf.model.Order;
import com.qf.model.User;
import com.qf.mapper.UserMapper;
import com.qf.model.UserDTO;
import com.qf.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;

/**
 * 天--道--酬--勤
 *
 * @author LiangGaoQiang
 * @ClassName UserServiceImpl
 * @Date: 2025/4/3 20:40
 * @Description: 描述
 */

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;


    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return 用户信息
     */
    @Override
    public User findUserById(int id) {
        User user = userMapper.findUserById(id);
        System.out.println("user = " + user);
        return user;
    }

    /**
     * 查询所有用户信息
     * @return 所有用户信息
     */
    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    /**
     * 根据用户名和密码查询用户信息
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    @Override
    public User findUserByLogin(String username, String password) {
        return userMapper.findUserByLogin(username, password);
    }

    /**
     * 根据用户名和密码查询用户信息
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    @Override
    public User findUserByLogin2(@Param("username") String username, @Param("password") String password) {
        return userMapper.findUserByLogin2(username, password);
    }

    /**
     * 根据用户名和密码查询用户信息
     * @param map 用户名和密码
     * @return 用户信息
     */
    @Override
    public User findUserByLoginMap(HashMap<String, Object> map) {
        return userMapper.findUserByLoginMap(map);
    }

    /**
     * 添加用户信息
     * @param user 用户信息
     * @return 添加结果
     */
    @Override
    public int addUser(User user) {
        return userMapper.addUser(user);
    }

    /**
     * 根据id更新用户信息
     * @param user 用户信息
     * @return 更新结果
     */
    @Override
    public int updateUser(User user) {
        return userMapper.updateUser(user);
    }

    /**
     * 根据id删除用户信息
     * @param id 用户id
     * @return 删除结果
     */
    @Override
    public int deleteById(int id) {
        return userMapper.deleteById(id);
    }

    @Override
    public User findUserByName(String username) {
        return userMapper.findUserByName(username);
    }

    @Override
    public List<Order> findUserWithOrdersById(int id) {
        return userMapper.findUserWithOrdersById(id);
    }

    @Override
    public List<User> findAll2(UserDTO userDTO) {
        return userMapper.findAll2(userDTO);
    }

    @Override
    public boolean deleteByIdBatch(List<Integer> ids) {
        return userMapper.deleteByIdBatch(ids);
    }
}
